Trellis codes, such as convolutional codes, trellis and bit-interleaved coded modulations, are commonly used to improve the performance of communications networks. However, a decoded message obtained by a receiver might still contain errors as a result of the impairment of channel conditions and/or insufficient protection due to a low redundancy rate.
Data exchanged in a wireless communications network is typically protected by an error detection code (EDC). A commonly used EDC algorithm is a cyclic redundancy code (CRC), which pads parity bits to the data. The EDC encoded data subsequently passes through a multi-state convolutional code encoder with a code rate of k/n. A convolutional code is terminated by a zero-padding or a tail-biting technique. In general, a convolutional code has a code rate of k/n; however, it is more practical to use a convolutional code with a code rate of 1/n in order to obtain higher rates through puncturing methods.
The decoding system of a receiver in a wireless communications network comprises a convolutional code decoder (e.g. a Maximum Likelihood decoder employing the Viterbi algorithm) and an EDC decoder. The EDC decoder examines the data decoded by the convolutional decoder to determine if a CRC error exists. Conventional methods for decoding messages may not always yield desired results or may use a considerable amount of time and resources due to the impairment of channel conditions and/or insufficient protection.
As such, what is desired is a method and system for improving decoding efficiency in a wireless communications network.